package com.ruoyi.system.domain.customer;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 客户信息对象 customer_inf
 * 
 * @author 张少丛
 * @date 2020-11-19
 */
@TableName("customer_inf")
@Data
public class CustomerInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键ID */
    private Integer customerInfId;

    /** customer_login表的自增ID */
    @Excel(name = "customer_login表的自增ID")
    private Integer customerId;

    /** 用户真实姓名 */
    @Excel(name = "用户真实姓名")
    private String customerName;

    /** 证件类型：1 身份证，2 军官证，3 护照 */
    @Excel(name = "证件类型：1 身份证，2 军官证，3 护照")
    private Integer identityCardType;

    /** 证件号码 */
    @Excel(name = "证件号码")
    private String identityCardNo;

    /** 手机号 */
    @Excel(name = "手机号")
    private Integer mobilePhone;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String customerEmail;

    /** 性别 */
    @Excel(name = "性别")
    private String gender;

    /** 注册时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "注册时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date registerTime;

    /** 会员生日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "会员生日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /** 会员级别：1 普通会员，2 青铜，3白银，4黄金，5钻石 */
    @Excel(name = "会员级别：1 普通会员，2 青铜，3白银，4黄金，5钻石")
    private Integer customerLevel;

    /** 用户余额 */
    @Excel(name = "用户余额")
    private BigDecimal userMoney;

    /** 最后修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date modifiedTime;

    /**
     * 用户的头像
     */
    private String customerHandImage;

    /**
     * 用户的昵称
     */
    private String customerNickName;

    private CustomerLogin customerLogin;


    public void setCustomerInfId(Integer customerInfId) 
    {
        this.customerInfId = customerInfId;
    }

    public Integer getCustomerInfId() 
    {
        return customerInfId;
    }
    public void setCustomerId(Integer customerId) 
    {
        this.customerId = customerId;
    }

    public Integer getCustomerId() 
    {
        return customerId;
    }
    public void setCustomerName(String customerName) 
    {
        this.customerName = customerName;
    }

    public String getCustomerName() 
    {
        return customerName;
    }
    public void setIdentityCardType(Integer identityCardType) 
    {
        this.identityCardType = identityCardType;
    }

    public Integer getIdentityCardType() 
    {
        return identityCardType;
    }
    public void setIdentityCardNo(String identityCardNo) 
    {
        this.identityCardNo = identityCardNo;
    }

    public String getIdentityCardNo() 
    {
        return identityCardNo;
    }
    public void setMobilePhone(Integer mobilePhone) 
    {
        this.mobilePhone = mobilePhone;
    }

    public Integer getMobilePhone() 
    {
        return mobilePhone;
    }
    public void setCustomerEmail(String customerEmail) 
    {
        this.customerEmail = customerEmail;
    }

    public String getCustomerEmail() 
    {
        return customerEmail;
    }
    public void setGender(String gender) 
    {
        this.gender = gender;
    }

    public String getGender() 
    {
        return gender;
    }
    public void setRegisterTime(Date registerTime) 
    {
        this.registerTime = registerTime;
    }

    public Date getRegisterTime() 
    {
        return registerTime;
    }
    public void setBirthday(Date birthday) 
    {
        this.birthday = birthday;
    }

    public Date getBirthday() 
    {
        return birthday;
    }
    public void setCustomerLevel(Integer customerLevel) 
    {
        this.customerLevel = customerLevel;
    }

    public Integer getCustomerLevel() 
    {
        return customerLevel;
    }
    public void setUserMoney(BigDecimal userMoney) 
    {
        this.userMoney = userMoney;
    }

    public BigDecimal getUserMoney() 
    {
        return userMoney;
    }
    public void setModifiedTime(Date modifiedTime) 
    {
        this.modifiedTime = modifiedTime;
    }

    public Date getModifiedTime() 
    {
        return modifiedTime;
    }

    public CustomerLogin getCustomerLogin() {
        return customerLogin;
    }

    public void setCustomerLogin(CustomerLogin customerLogin) {
        this.customerLogin = customerLogin;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("customerInfId", getCustomerInfId())
            .append("customerId", getCustomerId())
            .append("customerName", getCustomerName())
            .append("identityCardType", getIdentityCardType())
            .append("identityCardNo", getIdentityCardNo())
            .append("mobilePhone", getMobilePhone())
            .append("customerEmail", getCustomerEmail())
            .append("gender", getGender())
            .append("registerTime", getRegisterTime())
            .append("birthday", getBirthday())
            .append("customerLevel", getCustomerLevel())
            .append("userMoney", getUserMoney())
            .append("modifiedTime", getModifiedTime())
                .append("customerLogin", getCustomerLogin())
            .toString();
    }
}
